var file = require('../models/file.js');
var formidable = require('formidable');
var path =  require('path');
var fs = require('fs');
var datatime = require("node-datetime");
exports.showIndex = function(req, res,next){
    // 所有的东西都是异步的
    //所以,内层函数,不是return回来的东西,而是调用高层函数提供的
    //回调函数.把数据当作回调函数的参数来使用
    file.getAllAlbum(function(err, album){
        //err是字符串
        if(err) {
            next();
            return;
        }
        res.render('index',{
            "album" : album
        });
    })
    
}
exports.showAlbum = function(req, res,next){
    var albumName = req.params.albumName
    //具体业务交给model
    file.getAllImagesByAlbumName(albumName, function(err,imagesArray){
        if(err){
            next();
            return;
        }
        res.render('album',{
            'albumname':albumName,
            'images': imagesArray
        })
    })
    
}
//显示上传
exports.showUp = function(req, res){
    // file模块(我们自己写的函数)
    file.getAllAlbum(function(err, album){
        res.render('up',{
            albums: album
        });
    })
}
exports.doPost = function(req, res){
    var form = new formidable.IncomingForm();
    form.uploadDir = path.normalize(__dirname +  '/../uploads/');
    form.parse(req, function(err, fields, files,next) {
      if(err){
          next();
          return;
      }   
      //判断文件尺寸
      var size = parseInt(files.img.size);
      if(size > 2048){
            res.send("图片尺寸应该小于1M");
            fs.unlink(files.img.path);
            return;
      }

      var filename = fields.file; //选择上传的文件夹名
     // var ran = parseInt(Math.random() * 999 + 100);//随机数
      var dt = datatime.create();   //名字中带有上传时间
      var formatted = dt.format('YmdHMS');
      var extname = files.img.name;
     // var extname = path.extname(files.img.name);//.jpg或者.png
      var oldpath = files.img.path;
      var newpath = path.normalize(__dirname +  "/../uploads/" + filename + '/' + formatted + '_' + extname);

      console.log(newpath);
      fs.rename(oldpath, newpath, function(err){
        if(err){
            res.send('err');
            return;
        }
        res.send("OK");
      })
    });
    
}